Full-Text Search (FTS) SQLite-এ একটি শক্তিশালী ফিচার যা আপনাকে টেক্সট ডেটা খুব দ্রুত এবং কার্যকরভাবে খুঁজে বের করতে সাহায্য করে। FTS মূলত এমন একটি টেবিলের জন্য ব্যবহৃত হয় যা একাধিক শব্দ বা বাক্যের মধ্যে অনুসন্ধান করার জন্য ডিজাইন করা হয়। SQLite-এ FTS ব্যবহারের মাধ্যমে আপনি ডেটাবেসে টেক্সটের ভিত্তিতে অনুসন্ধান করতে পারেন এবং এটি সাধারণত বৃহৎ টেক্সট ফাইল বা ডকুমেন্টে অনুসন্ধান কার্যক্রম করার জন্য ব্যবহৃত হয়।
SQLite FTS ব্যবহার করতে আপনাকে FTS5 বা FTS4 এক্সটেনশন ব্যবহার করতে হবে। এই এক্সটেনশনটি টেক্সট ডেটাতে ইনডেক্সিং তৈরি করে, যাতে আপনি দ্রুত অনুসন্ধান করতে পারেন। SQLite ডিফল্টভাবে FTS সমর্থন করে, তবে আপনাকে টেবিল তৈরি করার সময় FTS ব্যবহার করতে হবে।
১. FTS5 টেবিল তৈরি করা
SQLite-এ Full-Text Search (FTS) টেবিল তৈরি করার জন্য CREATE VIRTUAL TABLE কমান্ড ব্যবহার করতে হয়। FTS5 হল SQLite-এর সর্বশেষ ভার্সন এবং এটি আরও বেশি কার্যকর এবং উন্নত ফিচার সমর্থন করে।
উদাহরণ: FTS5 টেবিল তৈরি করা
ধরা যাক, আমরা একটি documents টেবিল তৈরি করতে চাই যেখানে title এবং content নামক দুটি কলাম থাকবে, এবং এই দুটি কলামে আমরা Full-Text Search চালাতে চাই।
CREATE VIRTUAL TABLE documents USING fts5(title, content);
এটি একটি virtual table তৈরি করবে, যা title এবং content কলামে Full-Text Search সমর্থন করবে।
২. ডেটা ইনসার্ট করা
FTS টেবিলে ডেটা ইনসার্ট করতে সাধারণ SQL INSERT INTO কুয়েরি ব্যবহার করা হয়। এর মাধ্যমে আপনি টেক্সট ডেটা যুক্ত করতে পারেন যেগুলোর মধ্যে পরবর্তী সময়ে অনুসন্ধান করা হবে।
উদাহরণ: ডেটা ইনসার্ট করা
INSERT INTO documents (title, content)
VALUES ('SQLite Tutorial', 'This tutorial will guide you through SQLite full-text search features.');
INSERT INTO documents (title, content)
VALUES ('FTS in SQLite', 'Learn how to use Full-Text Search (FTS) in SQLite to search your documents.');
এটি documents টেবিলে দুটি রেকর্ড ইনসার্ট করবে। প্রথম রেকর্ডে title হল 'SQLite Tutorial' এবং দ্বিতীয় রেকর্ডে title হল 'FTS in SQLite'।
৩. FTS কুয়েরি চালানো
FTS টেবিলের মাধ্যমে আপনি খুব দ্রুত এবং কার্যকরভাবে টেক্সট অনুসন্ধান করতে পারেন। MATCH কুয়েরি ব্যবহার করে FTS টেবিলে অনুসন্ধান করা হয়।
উদাহরণ: FTS কুয়েরি চালানো
SELECT * FROM documents WHERE content MATCH 'SQLite';
এই কুয়েরি documents টেবিলের content কলামে 'SQLite' শব্দটি খুঁজবে এবং যেসকল রেকর্ডে 'SQLite' শব্দটি রয়েছে তা দেখাবে।
আউটপুট:
| title | content |
|---|---|
| SQLite Tutorial | This tutorial will guide you through SQLite full-text search features. |
| FTS in SQLite | Learn how to use Full-Text Search (FTS) in SQLite to search your documents. |
৪. FTS এর জন্য সঠিক অপটিমাইজেশন
SQLite FTS-এর মাধ্যমে অনুসন্ধান কার্যক্রম উন্নত করার জন্য আপনি কিছু অপটিমাইজেশন পদ্ধতি অনুসরণ করতে পারেন:
- টোকেনাইজেশন (Tokenization): FTS টেবিলের মাধ্যমে ডেটা ইনডেক্স করার জন্য টোকেনাইজেশন পদ্ধতি ব্যবহার করা হয়। এটি শব্দগুলোকে পৃথক করতে সাহায্য করে।
- পরিসর অনুসন্ধান: আপনি একটি নির্দিষ্ট পরিসরের মধ্যে অনুসন্ধান করতে পারেন, যেমন একাধিক শব্দের মধ্যে অনুসন্ধান।
উদাহরণ: শব্দের মধ্যে AND ব্যবহার করা
SELECT * FROM documents WHERE content MATCH 'SQLite AND tutorial';
এটি documents টেবিলের content কলামে 'SQLite' এবং 'tutorial' দুটি শব্দ একসাথে খুঁজবে।
৫. FTS3 এবং FTS4 এর সাথে তুলনা
- FTS3: SQLite এর আগের ভার্সন, FTS3 কিছু ফিচারের সমর্থন দিয়ে থাকে, তবে FTS5-এর তুলনায় কম কার্যকর।
- FTS4: FTS3 এর একটি উন্নত সংস্করণ, যেখানে কিছু অতিরিক্ত ফিচার যেমন আংশিক ম্যাচিং এবং স্টোরেজ অপশন রয়েছে।
- FTS5: SQLite এর সর্বশেষ ভার্সন যা আরও উন্নত, যেমন ব্লুমফিল্টার সমর্থন, টোকেনাইজেশন ফিচার, এবং ইনডেক্সিং অপশন।
৬. FTS টেবিল মুছে ফেলা
যখন আপনি আর FTS টেবিলটি ব্যবহার করতে না চান, তখন আপনি DROP TABLE কমান্ড ব্যবহার করে সেটি মুছে ফেলতে পারবেন।
উদাহরণ: FTS টেবিল মুছে ফেলা
DROP TABLE documents;
এটি documents FTS টেবিলটি মুছে ফেলবে।
সারাংশ
SQLite-এ Full-Text Search (FTS) একটি শক্তিশালী ফিচার যা দ্রুত টেক্সট অনুসন্ধান করতে সাহায্য করে। FTS5 এর মাধ্যমে আপনি টেক্সট ডেটা ইনডেক্স করতে পারেন এবং MATCH কুয়েরির মাধ্যমে দ্রুত অনুসন্ধান পরিচালনা করতে পারেন। FTS টেবিল তৈরি করতে CREATE VIRTUAL TABLE কমান্ড ব্যবহার করতে হয়, এবং ডেটা ইনসার্ট, অনুসন্ধান, অপটিমাইজেশনসহ অন্যান্য কার্যক্রম করতে INSERT INTO, SELECT, এবং অন্যান্য SQL কমান্ড ব্যবহার করা হয়। FTS সিস্টেমটি বড় টেক্সট ডেটাবেসগুলোর জন্য অত্যন্ত কার্যকর।
Read more